package main

import (
	"fmt"
	"log"
)

func main() {
	err := Parse("test")
	if err != nil {
		log.Println(err)
	}
}

func Parse(input string) (err error) {
	defer func() {
		if p := recover(); p != nil {
			err = fmt.Errorf("internal error: %v", p)
		}
	}()

	panic("test panic")
	// ...parser...
	return
}
